Multicasting environments provide means to disseminate content related to a great variety of topics to multitudes of subscribers. The content of each topic is delivered over an information flow, where each flow is associated with one or more multicast groups as shown in FIG. 1. In the following, topics and flows are used interchangeably. Multicasting schemes are generally more favorable than unicast methods, as multicasting is a more efficient method for delivering messages to multiple subscribers who are interested in the same data flows.
Since multicast groups are associated with limited resources, in many cases the number of flows is considerably larger than the number of groups, which means that multiple flows should be transmitted over a single group. As such, a mapping scheme is implemented to manage the relationships between flows and groups. Referring to FIG. 1, for example, flows F1, F2, . . . FK are mapped to multicast groups G1, G2, . . . , GM in order to be transmitted to multiple users U1, U2, . . . , UN, according to the users' interest in different flows.
In a large-scale multicast system, the limitations in the number of multicast groups lead to mapping of flows to a plurality of multicast groups also known as “channelization”. Depending on the mapping and the degree of overlap in the interest of different users, this may result in a user, receiving flows that the user is both interested in and flows in which the user has no interest. In other words, depending on the topic of interest, a user subscribes to a multicast group on which both interesting and non-interesting flows are multicasted. The user receives all the flows multicasted on that group and filters out the flows that are not of interest.
As shown in FIG. 1, a user Un may be interested in a single flow F1. Since Un is interested in receiving F1, it subscribes to G1 to which F1, F2 and Fk are mapped. As such, by way of subscribing to G1, Un will receive F1, F2, and Fk as all these flows are transmitted over G1. Un will now have to filter out the unwanted flows F2 and Fk. In this example, Un has an overhead associated with having to filter out the unwanted flows F2 and Fk. Also, Un's overall reception capacity for receiving flows of interest is diminished, when it allocates its resources to receiving the unwanted flows F2 and Fk.
Based on the above example, it can be seen that the higher the rate of the unwanted flows received by a user, the higher are the penalties associated with filtering and reception capacity. To avoid these penalties, it is desirable to implemented a mapping scheme that minimizes the filtering overhead and adheres to a user's reception capacity, particularly taking into consideration changes in subscribers' interest and topic rate (i.e., the rate at which data is transmitted on a topic or flow).
In a multicasting systems, the subscribers' interest and topic rate may be monitored in order to be able to update the mappings between flows and groups to maintain an appropriate level of performance. In such systems, a new mapping is computed, from time to time, to achieve a more efficient multicast experience by moving the flows between groups based on the observed changes. For example, in FIG. 1, if it is noticed that U1 is no longer interested in receiving F2 (and that no other user subscribed to G1 is not interested in F2 either), then the mapping may be updated so that F2 is no longer mapped to G1. As a result, U2 and Un will no longer need to filter out F2. As another example, if user U2 is no longer interested in Fk, then Fk can be removed from G1 sparing U1, U2, and Un from filtering Fk (note that Fk is also mapped to Gm).
Note that prior to the remapping, G1 multicasted both flows F1 and F2 to all three users U1, U2 and Un. Out of the three users, two of them, namely U2 and Un, had to filter out F2 under the earlier mapping because users U2 and Un were not interested in receiving the flow F2. After the change in mapping, however, G1 only multicasts F1 to all three users U1, U2 and Un. As a result, U2 and Un no longer have the processing overhead associated with having to filter out F2 as they did under the prior mapping. As such, the filtering overhead has been reduced due to the updated mapping.
In some multicasting frameworks, information about the system's overhead and changes in users interest is gathered during the current operation period. Based on such information, a new mapping for the subsequent operation period is computed and applied. The transition to new mapping may introduce added complexity to the system and adversely affect the reception capacities of the users. Such factors should be taken into account when computing a new mapping.